iT邦幫忙

2023 iThome 鐵人賽

DAY 13
0
Kotlin

new to Kotlin系列 第 13

Day 13 屬性與介面

  • 分享至 

  • xImage
  •  
  • 屬性宣告
fun copyAddress(address: Address): Address {
    val result = Address()
    result.name = address.name
    result.street = address.street
    // ...
    return result
}
  • Getters以及setters
    語法如下:
var <propertyName>[: <PropertyType>] [= <property_initializer>]
    [<getter>]
    [<setter>]
  • Backing fields
    需要注意的是,在Kotlin內field不能直接被宣告
    在屬性需要Backing fields時,Kotlin會自動提供
var counter = 0
    set(value) {
        if (value >= 0)
            field = value
    }
  • Backing properties
    隱含的backing field若在使用上不符合的話,可以透過Backing properties達到
private var _table: Map<String, Int>? = null
public val table: Map<String, Int>
    get() {
        if (_table == null) {
            _table = HashMap()
        }
        return _table ?: throw AssertionError("Set to null by another thread")
    }

上一篇
Day 12 繼承
下一篇
Day 14 屬性與介面(續)
系列文
new to Kotlin30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言